package com.jxtc.enterprise.common.utils;

import java.time.LocalDate;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;

public class DateTimeUtil {
    /**
     * 获取当天日期
     *
     * @return yyyy-MM-dd 格式字符串
     */
    public static String getCurrentDate() {
        LocalDate currentDate = LocalDate.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        return currentDate.format(formatter);
    }

    /**
     * 获取明天日期
     *
     * @return yyyy-MM-dd 格式字符串
     */
    public static String getTomorrowDate() {
        LocalDate tomorrowDate = LocalDate.now().plusDays(1);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        return tomorrowDate.format(formatter);
    }

    /**
     * 将 HH:mm:ss 格式字符串解析为 LocalTime
     *
     * @param time HH:mm:ss 格式字符串
     * @return LocalTime
     */
    public static LocalTime parseTime(String time) {
        return LocalTime.parse(time, DateTimeFormatter.ofPattern("HH:mm:ss"));
    }

    /**
     * 获取本月第一天
     *
     * @return yyyy-MM-dd 格式字符串
     */
    public static String getFirstDayOfMonth() {
        return LocalDate.now().with(TemporalAdjusters.firstDayOfMonth()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
    }

    /**
     * 获取本月最后一天
     *
     * @return yyyy-MM-dd 格式字符串
     */
    public static String getLastDayOfMonth() {
        return LocalDate.now().with(TemporalAdjusters.lastDayOfMonth()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
    }
}
